import java.util.HashMap;
import java.util.Map;

class Solution017 {
    public static void main(String[] args) {
        String s = "A";
        String ss = "A";
        System.out.println(minWindow(s , ss));
    }
    public static String minWindow(String s, String t) {
        char[] sArr = s.toCharArray() ;
        char[] tArr = t.toCharArray() ;
        Map<Character , Integer> hash = new HashMap<>() ;
        for(char ch : tArr){
            hash.put(ch , hash.getOrDefault(ch,0)+1) ;
        }
        Map<Character , Integer> sum = new HashMap<>() ;
        int index = -1 ;
        int min = Integer.MAX_VALUE ;
        int len = tArr.length ;
        int count = 0 ;
        for(int left=0 , right=0 ; right<sArr.length ; right++){
            char ch = sArr[right] ;
            sum.put(ch , sum.getOrDefault(ch,0)+1);
            if(sum.get(ch) <= hash.getOrDefault(ch,0)){
                count++ ;
            }
            while(left<sArr.length &&  count == len){
                if(min > right-left+1){
                    min = right-left+1 ;
                    index = left ;
                }
                sum.put(sArr[left] , sum.get(sArr[left])-1) ;
                if(hash.get(sArr[left])!=null && sum.get(sArr[left]) < hash.get(sArr[left]) ){
                    count -- ;
                }
                left++ ;
            }
        }

        return index==-1?new String() : new String(sArr , index , min) ;
    }
}